/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pl.tewi.contexts;

import javax.naming.InitialContext;
import pl.tewi.exceptions.InjectionException;

/**
 * Interfejs komponentu wstrzykującego zasoby w pola obiektów klas testowych.
 * Test w projekcie zewnątrznym JeeUnitTest
 * @author Marcin Kwapisz
 */
public interface FieldInjector {
    
    /**
     * Wykonuje wstryknięcie do opisanych adnotacją pól przekazanego obiektu 
     * @param test obiekt dla którego maja być wykonane wstrzyknięcia
     * @param initialContext kontekst wyszukiwania w jndi serwera aplikacyjnego
     * @param applicationServerContext kontekst serwera aplikacyjnego na którym będa wyszukiwane żądane zasoby
     * @throws InjectionException gdy występują nieprawidłowości z wstrzykiwaniem 
     * zależności
     */
    void inject(Object test, InitialContext initialContext, ApplicationServerContext applicationServerContext) throws InjectionException;
    
}

